package cn.iocoder.yudao.module.ao.controller.admin.course.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 课程信息新增/修改 Request VO")
@Data
public class CourseSaveReqVO {

    @Schema(description = "课程ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "19444")
    private Long courseId;

    @Schema(description = "课程编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CS001")
    @NotEmpty(message = "课程编码不能为空")
    private String courseCode;

    @Schema(description = "课程名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "计算机基础")
    @NotEmpty(message = "课程名称不能为空")
    private String courseName;

    @Schema(description = "所属学科组ID", example = "1")
    private Long groupId;

    @Schema(description = "课程类型", example = "必修课")
    private String courseType;

    @Schema(description = "课程类别", example = "专业课")
    private String courseCategory;

    @Schema(description = "课程学时", example = "64")
    private Integer creditHours;

    @Schema(description = "理论学时", example = "32")
    private Integer theoryHours;

    @Schema(description = "实践学时", example = "32")
    private Integer practiceHours;

    @Schema(description = "学分", example = "3.0")
    private BigDecimal credits;

    @Schema(description = "先修课程ID序列", example = "1,2,3")
    private String prerequisiteCourses;

    @Schema(description = "课程描述")
    private String description;

    @Schema(description = "课程目标")
    private String objectives;

    @Schema(description = "状态（0=禁用 1=启用）", example = "1")
    private Integer status;

}